package com.bwie.doctor.mapper;

import com.bwie.doctor.domain.po.MedDoctor;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;

@Mapper
public interface RegisteredMapper {
    /**
     * 挂号
     * @return
     */
    void register(@Param("realName") String dockerName, @Param("patientName") String patientName);

    /**
     * 查询挂号状态
     * @param dockerName
     * @param patientName
     * @return
     */
    Integer getRegisterState(@Param("realName") String dockerName, @Param("patientName") String patientName);

    /**
     * 根据医生名称查询医生挂号费用
     *
     * @param dockerName
     * @return
     */
    MedDoctor getDoctorMoney(String dockerName);

    /**
     * 根据患者名称查询患者id
     *
     * @param patientName
     * @return
     */
    Long getPatientId(String patientName);

    /**
     * 根据医生挂号费用和患者id退还患者金额
     * @param doctorMoney
     * @param patientId
     */
    void updUpPatientMoney(@Param("doctorMoney") BigDecimal doctorMoney, @Param("patientId") Integer patientId);

    /**
     * 根据医生挂号费用和患者id扣减患者金额
     * @param doctorMoney
     * @param patientId
     */
    void updDownPatientMoney(@Param("doctorMoney") BigDecimal doctorMoney, @Param("patientId") Integer patientId);

    /**
     * 更改挂号状态为已取消
     * @param doctorId
     * @param patientId
     * @param
     */
    void cancelRegister(@Param("doctorId") Long doctorId, @Param("patientId") Long patientId, @Param("status") Integer status);

    /**
     * 根据患者姓名查询挂号记录
     * @param
     * @param patientName
     * @return
     */
    Integer getRegisterByPatientName(String patientName);
}
